package edu.cuit.avatar.p2;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.Date;

/**
 * 不可变对象
 *      1.所有的数据域都是私有的
 *      2.没有修改器方法
 *      3.没有一个返回指向可变数据域的引用的访问器方法
 * @author <a href="mailto:1020zhaodan@163.com">Adan</a>
 * @version 1.0
 * @date 2025/7/4 15:36
 */
public class Employee {
    private int id;

    private static int nextId = 1;

    /**
     * String是不可变对象
     */
    private String name;

    /**
     * 引用对象
     */
    private Date hireDate = new Date();

    public Employee(String name) {
        this.id = nextId++;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public static int getNextId() {
        return nextId;
    }

    public String getName() {
        return name;
    }

    public Date getHireDate() {
        //返回的是hireDate的引用
        return (Date) hireDate.clone();
    }

    @Override
    public String toString() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return "Employee{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", hireDate=" + sdf.format(hireDate) +
                '}';
    }
}
